package me.zhengjie.modules.management.mapper;


import me.zhengjie.modules.management.domain.RoomUser;
import me.zhengjie.modules.system.domain.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @website https://docs.auauz.net
 * @Description:
 * @Auther: chao.ji
 * @Date: 2020/12/19
 */
@Mapper
public interface UserMapper {

    /**
     * 根据id查姓名
     * @param id
     * @return
     */
    String findNameById(Long id);

    /**
     * 根据id查部门信息
     * @param id
     * @return
     */
    String findDeptIdById(Long id);
    /**
     * 根据id查询user
     * @param id
     * @return User
     */
    RoomUser findUserById(Long id);

   // void insertUser(RoomUser user);

    /**
     * 更新操作
     * @param user
     * @return void
     */
    void updateUser(RoomUser user);

    /**
     * 批量插入
     * @param list
     * @return void
     */
    void insertUser(List list);

    void insertRoles(List list);

    /**
     * 通过人员id查询到部门id
     */
    String  queryDeptIdByUserId(Long id);

    /**
     * 根据姓名模糊查询人员信息

     * @return
     */
    List<RoomUser> queryByName(String resource);

    /**
     * 根据工号模糊查询人员信息
     * @param resource
     * @return
     */
    List<RoomUser> queryByJobNumber(String resource);
    /**
     * 根据userId获取邮箱
     * @param userId
     * @return java.lang.String
     */
    String findEmailById(Integer userId);

    /**
     * 查询所有人员的工号
     * @return
     */
    List<String> findAllJobNum();

    /**
     * 根据工号删除人员
     * @param username
     */
    void deleteByJobNum(String username);

    /**
     * 根据姓名查询用户（预约量大的人排前面）
     * @param resource
     * @return
     */
    List<RoomUser> queryByNameAnother(String resource);

    /**
     * 根据工号查询用户（预约量大的人排前面）
     * @param resource
     * @return
     */
    List<RoomUser> queryByJobNumbAnother(String resource);

    /**
     *根据大学部门人名查询
     * @param resource
     * @return
     */
    List<RoomUser> queryByUniversityName(String resource);

    /**
     *根据大学部门工号查询
     * @param resource
     * @return
     */
    List<RoomUser> queryByUniversityJobNumb(String resource);

}
